package vsvm.data.filter;

import java.io.Serializable;
import vsvm.data.model.AbstractDataModel;
import vsvm.gui.IActionsProvider;
import vsvm.gui.IConfigurable;
import vsvm.gui.IQuickInfoProvider;

public abstract class AbstractFilter implements Serializable, IConfigurable, IActionsProvider, IQuickInfoProvider {
	/**
	 * 
	 */
	private static final long serialVersionUID = 100L;
	protected AbstractDataModel dataModel;
	
	// returns new data model with filtered information
	public abstract AbstractDataModel filter();
	
	// updates current model
	public abstract void update();
	
	
	public void setDataModel(AbstractDataModel model) {
		dataModel = model;
	}
	
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public String toString() {
		return name;
	}

}
